有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Facebook/Parse登录行为异常:代理应用程序尚未安装

我快疯了!尽管解决方案确实对我有所帮助,但并没有解决我的问题

我正在将Facebook登录添加到我当前的应用程序中。更重要的是,我有一些应用程序已经有了这个功能。我把它添加到他们身上没有问题!我已经看过了这些应用程序的代码,我现在正在处理的代码是相同的。我能想到的唯一区别是,这个应用程序在市场上推出,然后收到了一个Facebook登录功能。但是,我无法想象这会有什么关系

代码:

    Button fb = (Button) view.findViewById(R.id.bFacebook);
    Settings.setApplicationId(APPLICATION_ID);

    fb.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.d(TAG, "BUTTON WAS PRESSED");

            ParseFacebookUtils.logIn(Arrays.asList(ParseFacebookUtils.Permissions.User.ABOUT_ME),
                    getActivity(), new LogInCallback() {
                @Override
                public void done(final ParseUser user, ParseException err) {
                    if (user == null) {
                        Log.d("MyApp", "Uh oh. The user cancelled the Facebook login.");
                        Toast.makeText(getActivity(), "CANCEL", Toast.LENGTH_LONG).show();

                    } else if (user.isNew()) {
                        Log.d("MyApp", "User signed up and logged in through Facebook!");
                        Toast.makeText(getActivity(), "SIGNUP", Toast.LENGTH_LONG).show();
                    } else {
                        Log.d("MyApp", "User logged in through Facebook!");
                        Toast.makeText(getActivity(), "LOGIN", Toast.LENGTH_LONG).show();
                    }
                    end();
                }

                private void end() {
                    activity.changeFrag(Drawer.Frag.HOME);
                }
            });
        }
    });


}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    ParseFacebookUtils.finishAuthentication(requestCode, resultCode, data);
}

我收到警告:

com.facebook.http.protocol.ApiException: The proxied app is not already installed.

发生了什么:

  1. 我单击“登录”按钮,FB应用程序按其应打开
  2. 将出现一个微调器
  3. FB将立即关闭,我的应用程序将再次显示

如果您看到我的ParseCallback{}代码,您会注意到无论用户的结果如何,它都应该更改片段。但这不会被调用,也不会显示日志

我所做的:

  • 我已经进入我的解析设置,并在设置中添加了我的秘密和ID(我所做的所有研究,我注意到这是很多人会做错事的地方。如果你在这里寻找答案,请检查此项!!)
  • 我使用Parse.com指南添加了Facebook Sdk
  • 我已经四次检查了我的KeyHash是否正确
  • 我正在我的应用程序的onCreate中调用ParseFacebookUtils.initialize(APPLICATION_ID);
  • 我已经安装了FB应用程序
  • 我在模拟器和物理设备上都试过了
  • 我已经完全重新开始了一个新项目,它只包含更新的解析。jar和Facebook sdk。还是没什么

这里是警告的完整堆栈跟踪。这对我没什么好处,但也许你可以解释一下:

05-25 18:27:09.402    4515-4515/com.codealchemist D/Login Facebook﹕ BUTTON WAS PRESSED
com.codealchemist/com.facebook.LoginActivity: +82ms
05-25 18:27:10.002    3746-4556/com.facebook.katana W/fb4a(:<default>):BlueServiceQueue﹕ Exception during service
    com.facebook.http.protocol.ApiException: The proxied app is not already installed.
            at com.facebook.http.protocol.ApiResponseChecker.b(ApiResponseChecker.java:83)
            at com.facebook.http.protocol.ApiResponseChecker.a(ApiResponseChecker.java:162)
            at com.facebook.http.protocol.ApiResponse.g(ApiResponse.java:151)
            at com.facebook.platform.auth.server.AuthorizeAppMethod.a(AuthorizeAppMethod.java:275)
            at com.facebook.platform.auth.server.AuthorizeAppMethod.a(AuthorizeAppMethod.java:31)
            at com.facebook.http.protocol.ApiResponseHandler.a(ApiResponseHandler.java:55)
            at com.facebook.http.protocol.ApiResponseHandler.handleResponse(ApiResponseHandler.java:28)
            at com.facebook.http.common.FbHttpRequestProcessor.a(FbHttpRequestProcessor.java:314)
            at com.facebook.http.common.FbHttpRequestProcessor.a(FbHttpRequestProcessor.java:144)
            at com.facebook.http.common.FbHttpRequestProcessor.b(FbHttpRequestProcessor.java:100)
            at com.facebook.http.common.FbHttpRequestProcessor.a(FbHttpRequestProcessor.java:230)
            at com.facebook.http.protocol.SingleMethodRunnerImpl.a(SingleMethodRunnerImpl.java:402)
            at com.facebook.http.protocol.SingleMethodRunnerImpl.a(SingleMethodRunnerImpl.java:164)
            at com.facebook.http.protocol.AbstractSingleMethodRunner.a(AbstractSingleMethodRunner.java:18)
            at com.facebook.platform.common.server.SimplePlatformOperation.a(SimplePlatformOperation.java:40)
            at com.facebook.platform.common.server.PlatformOperationHandler.a(PlatformOperationHandler.java:60)
            at com.facebook.fbservice.service.BlueServiceQueue.e(BlueServiceQueue.java:329)
            at com.facebook.fbservice.service.BlueServiceQueue.d(BlueServiceQueue.java:55)
            at com.facebook.fbservice.service.BlueServiceQueue$3.run(BlueServiceQueue.java:258)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
            at java.util.concurrent.FutureTask.run(FutureTask.java:237)
            at com.facebook.common.executors.ListenableScheduledFutureImpl.run(ListenableScheduledFutureImpl.java:59)
            at 安卓.os.Handler.handleCallback(Handler.java:733)
            at 安卓.os.Handler.dispatchMessage(Handler.java:95)
            at 安卓.os.Looper.loop(Looper.java:136)
            at 安卓.os.HandlerThread.run(HandlerThread.java:61)
05-25 18:27:10.002    1272-1783/system_process I/ActivityManager﹕ START u0 {cmp=com.facebook.katana/.ProxyAuth (has extras)} from pid 4515
05-25 18:27:10.012    3746-3817/com.facebook.katana W/Settings﹕ Setting wifi_sleep_policy has moved from 安卓.provider.Settings.System to 安卓.provider.Settings.Global, returning read-only value.
05-25 18:27:10.032    1272-1420/system_process I/ActivityManager﹕ START u0 {cmp=com.facebook.katana/.ProxyAuthDialog (has extras)} from pid 3746
05-25 18:27:10.082    3746-3746/com.facebook.katana D/dalvikvm﹕ GC_FOR_ALLOC freed 2462K, 34% free 11230K/16936K, paused 20ms, total 21ms
05-25 18:27:10.192    3746-3746/com.facebook.katana W/EGL_emulation﹕ eglSurfaceAttrib not implemented
05-25 18:27:10.212    3746-3746/com.facebook.katana W/AwContents﹕ nativeOnDraw failed; clearing to background color.
05-25 18:27:10.222    1272-1286/system_process I/ActivityManager﹕ Displayed com.facebook.katana/.ProxyAuthDialog: +187ms (total +206ms)
05-25 18:27:10.292    3746-3746/com.facebook.katana W/EGL_emulation﹕ eglSurfaceAttrib not implemented
05-25 18:27:10.592    3746-3746/com.facebook.katana E/eglCodecCommon﹕ glUtilsParamSize: unknow param 0x00000b44
05-25 18:27:10.602    3746-3746/com.facebook.katana E/eglCodecCommon﹕ glUtilsParamSize: unknow param 0x00000bd0
05-25 18:27:10.612    3746-3746/com.facebook.katana I/chromium﹕ [INFO:async_pixel_transfer_manager_安卓.cc(56)] Async pixel transfers not supported
05-25 18:27:10.622    3746-3746/com.facebook.katana E/chromium﹕ [ERROR:gles2_cmd_decoder_autogen.h(1144)] [GroupMarkerNotSet(crbug.com/242999)!:9854F8B8]GL ERROR :GL_INVALID_OPERATION : GetIntegerv: <- error from previous GL command
05-25 18:27:10.672    3746-3746/com.facebook.katana I/chromium﹕ [INFO:async_pixel_transfer_manager_安卓.cc(56)] Async pixel transfers not supported
05-25 18:27:10.692    3746-3746/com.facebook.katana E/chromium﹕ [ERROR:gles2_cmd_decoder_autogen.h(1144)] [GroupMarkerNotSet(crbug.com/242999)!:483727B9]GL ERROR :GL_INVALID_OPERATION : GetIntegerv: <- error from previous GL command
05-25 18:27:10.752    3746-3746/com.facebook.katana E/eglCodecCommon﹕ **** ERROR unknown type 0x0 (glSizeof,72)
05-25 18:27:10.752    3746-3746/com.facebook.katana E/eglCodecCommon﹕ glUtilsParamSize: unknow param 0x00000b44
05-25 18:27:10.762    3746-3746/com.facebook.katana E/eglCodecCommon﹕ glUtilsParamSize: unknow param 0x00000bd0
05-25 18:27:10.792    3746-3746/com.facebook.katana E/eglCodecCommon﹕ **** ERROR unknown type 0x0 (glSizeof,72)
05-25 18:27:10.872    4515-4515/com.codealchemist W/EGL_emulation﹕ eglSurfaceAttrib not implemented
05-25 18:27:10.872    4515-4515/com.codealchemist E/HardwareRenderer﹕ An error has occurred while drawing:
    java.lang.IllegalStateException: The display list is not valid.
            at 安卓.view.GLES20DisplayList.getNativeDisplayList(GLES20DisplayList.java:49)
            at 安卓.view.GLES20Canvas.drawDisplayList(GLES20Canvas.java:420)
            at 安卓.view.HardwareRenderer$GlRenderer.drawDisplayList(HardwareRenderer.java:1646)
            at 安卓.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1469)
            at 安卓.view.ViewRootImpl.draw(ViewRootImpl.java:2381)
            at 安卓.view.ViewRootImpl.performDraw(ViewRootImpl.java:2253)
            at 安卓.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1883)
            at 安卓.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
            at 安卓.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670)
            at 安卓.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
            at 安卓.view.Choreographer.doCallbacks(Choreographer.java:574)
            at 安卓.view.Choreographer.doFrame(Choreographer.java:544)
            at 安卓.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
            at 安卓.os.Handler.handleCallback(Handler.java:733)
            at 安卓.os.Handler.dispatchMessage(Handler.java:95)
            at 安卓.os.Looper.loop(Looper.java:136)
            at 安卓.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)

共 (2) 个答案

  1. # 1 楼答案

    我也犯了这个错误

    我删除了请求权限,并将这些内容恢复到工作状态

    facebook permission guide中,在“回顾”一节中,它说

    If your app asks for more than than public_profile, email and user_friends it will require review by Facebook before your app can be used by people other than the app's developers.

    The time to review your app is usually about 7 business days. Some extra-sensitive permissions, as noted below, can take up to 14 business days.

    因此,我将权限减少到只有这三个权限,并且它正在工作。也许你的问题是这个

  2. # 2 楼答案

    • 卸载应用程序
    • 删除Facebook中的应用程序
    • 再试一次